package com.kelp.codetoolkit.dto

import com.kelp.codetoolkit.entity.ColumnInfo
import com.kelp.codetoolkit.entity.TableInfo

/**
 * @author: liuyuebai
 * @date: 2024/10/15 10:24
 * @description:
 */
class WriteTableContentParamsDTO(tableInfo: TableInfo) {

    /**
     * 包名
     */
    private var parentPackageName: String? = null

    /**
     * 模板包包名
     */
    private var templatePackageName: String? = null

    private var templateSuffix: String? = null

    /**
     * 表名
     */
    private var tableName: String? = null

    /**
     * 类名
     */
    private var className: String? = null

    /**
     * 注释
     */
    private var comment:String? = null

    /**
     * 注解
     */
    private var pkColumn: ColumnInfo? = null

    /**
     * 列
     */
    private var fullColumns:MutableList<ColumnInfo>? = null

    private var serialVersionUID:String? = null

    private var importLombok:String? = null

    /**
     * 导入包
     */
    private var importFieldPackageList:MutableSet<String>? = null

    init {
        this.tableName = tableInfo.getTableName()
        this.className = tableInfo.getClassName()
        this.comment = tableInfo.getComment()
        this.pkColumn = tableInfo.getPkColumn()
        this.fullColumns = tableInfo.getFullColumns()
    }

    fun getParentPackageName(): String? {
        return parentPackageName
    }
    fun setParentPackageName(parentPackageName: String) {
        this.parentPackageName = parentPackageName
    }

    fun getTemplatePackageName(): String? {
        return templatePackageName
    }

    fun setTemplatePackageName(templatePackageName: String) {
        this.templatePackageName = templatePackageName
    }

    fun getTemplateSuffix(): String? {
        return templateSuffix
    }

    fun setTemplateSuffix(templateSuffix: String) {
        this.templateSuffix = templateSuffix
    }

    fun getClassName(): String? {
        return className
    }

    fun setClassName(className: String?) {
        this.className = className
    }

    fun getTableName(): String? {
        return tableName
    }
    fun setTableName(tableName: String?) {
        this.tableName = tableName
    }
    fun getComment(): String? {
        return comment
    }
    fun setComment(comment: String?) {
        this.comment = comment
    }
    fun getFullColumns():MutableList<ColumnInfo>?{
        return fullColumns
    }
    fun setFullColumns(fullColumns:MutableList<ColumnInfo>){
        this.fullColumns = fullColumns
    }

    fun getPkColumn():ColumnInfo?{
        return pkColumn
    }

    fun setPkColumn(pkColumn: ColumnInfo){
        this.pkColumn = pkColumn
    }

    fun getImportFieldPackageList():MutableSet<String>?{
        return importFieldPackageList
    }

    fun setImportFieldPackageList(importFieldPackageList:MutableSet<String>?){
        this.importFieldPackageList = importFieldPackageList
    }

    fun getImportLombok():String?{
        return importLombok
    }

    fun setImportLombok(importLombok:String?){
        this.importLombok = importLombok
    }

    fun getSerialVersionUID(): String? {
        return serialVersionUID
    }

    fun setSerialVersionUID(serialVersionUID:String){
        this.serialVersionUID = serialVersionUID
    }
}